#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e8+10;
vector<int> spf;
vector<int> modified_sieve() {
  spf.resize(maxn);
  iota(spf.begin(), spf.end(), 0);
  vector<int> primes;
  for(ll i=2; i*i<=maxn; ++i)
    if(spf[i] == i)
      for(ll j=i*i; j<=maxn; j+=i)
        if(spf[j]==j)
          spf[j] = i;
    for(int i=2; i<=maxn; ++i)
      if(spf[i]==i)
        primes.push_back(i);
  return primes;
}
/**
 * @brief prime factorize in O(log(n))
 * 
 * @param x 
 * @return vector<int> 
 */
vector<int> factorize(int x) {
  vector<int> res;
  while(x>1) {
    res.push_back(spf[x]);
    x /= spf[x];
  }
  return res;
}
int main() {
  modified_sieve();
  vector<int> factorized = factorize(21233664);
  for(auto el:factorized) cout<<el<<' ';
  cout<<endl;
}